Business logic between different countries, cultures and industries is different. In order make our products' business logic fit into these different segments, the business logic has to be customized. Currently, this problem is generally solved with one of two approaches. First, one set of source code is created that contains all the variations. This approach results in overly complex business logic with unnecessary “if then” logic. Because the same code base is always being changed, a limited number of people can change the code and exhaustive regression testing has to be performed. Second, multiple sets of source code are created that contain the business logic for each variation. This approach results in duplicate effort to bring one feature to all segments because the same new feature code has to be applied to each source code copy.